package com.example.demo.mapper;

import com.example.demo.entity.TaskType;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface TaskTypeMapper {
    
    /**
     * 插入任务类型
     */
    int insert(TaskType taskType);
    
    /**
     * 根据ID删除任务类型
     */
    int deleteById(@Param("taskTypeId") Long taskTypeId);
    
    /**
     * 更新任务类型
     */
    int update(TaskType taskType);
    
    /**
     * 根据ID查询任务类型
     */
    TaskType selectById(@Param("taskTypeId") Long taskTypeId);
    
    /**
     * 查询所有任务类型
     */
    List<TaskType> selectAll();
    
    /**
     * 根据数据源ID查询任务类型列表
     */
    List<TaskType> selectByDataSourceId(@Param("dataSourceId") Long dataSourceId);
    
    /**
     * 根据任务名称查询任务类型
     */
    List<TaskType> selectByTaskName(@Param("taskName") String taskName);
    
    /**
     * 统计任务类型总数
     */
    int count();
    
    /**
     * 根据数据源ID查询任务类型
     */
    List<TaskType> selectByDataSourceIdOnly(@Param("dataSourceId") Long dataSourceId);
}